﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Core;
using Crosland.Automotriz.Logic.Linq;
using Crosland.Automotriz.Facade.Interface;
using Crosland.Automotriz.Entidad;


namespace Crosland.Automotriz.Facade.Facade
{
    public class FacadeProcesarABC : iFacadeProcesarABC
    {

        //public List<TD_MARCA> ListarMarcaActivo()
        //{
        //    clsTD_MarcaLogic BL_TD_Marca = new clsTD_MarcaLogic();
        //    return BL_TD_Marca.ListarMarcaActivo();

        //}

      

        public List<TH_PROCESOABC_DET> listar(int num_proc)
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet = new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.listar(num_proc);
        }

        public IEnumerable<Object> listar_th_procesoabc_cab()
        {
            clsTh_Procesoabc_CabLogic BL_TH_ProcesoAbcCab = new clsTh_Procesoabc_CabLogic();
            return BL_TH_ProcesoAbcCab.listar_th_procesoabc_cab();
        }

        public bool procesar_ABC(int ID_ORG_VTA, string PERI_VENTA_INI, string PERI_VENTA_FIN, string VI_ABC_DESDE_HASTA_VEN, string VI_ABC_DESDE_HASTA_CAN, string COD_USUARIO, int ANIO, int MES, int MESES_N, int MESES_O)
        {
                clsTh_Procesoabc_CabLogic BL_TH_ProcesoAbcCab = new clsTh_Procesoabc_CabLogic();
                return BL_TH_ProcesoAbcCab.procesar_ABC(ID_ORG_VTA,PERI_VENTA_INI,PERI_VENTA_FIN, VI_ABC_DESDE_HASTA_VEN, VI_ABC_DESDE_HASTA_CAN,COD_USUARIO,ANIO, MES, MESES_N,MESES_O);
        }


        public bool update_tipo_Abc(int nro_proceso)
        {
            clsTh_Procesoabc_CabLogic BL_TH_ProcesoAbcCab = new clsTh_Procesoabc_CabLogic();
            return BL_TH_ProcesoAbcCab.update_tipo_Abc(nro_proceso);
            
        }


        public bool deleteTh_proceso_abc_cab(int nro_proceso)
        {
             clsTh_Procesoabc_CabLogic BL_TH_ProcesoAbcCab = new clsTh_Procesoabc_CabLogic();
             return BL_TH_ProcesoAbcCab.deleteTh_proceso_abc_cab(nro_proceso);
        }


        public bool deleteTh_proceso_abc_det(int nro_proceso)
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet = new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.deleteTh_proceso_abc_det(nro_proceso);
        }

        public List<procesoABC> listTh_Procesarabc_Det(int nro_proceso, String idMarca, string desGrupo)
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet= new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.listTh_Procesarabc_Det(nro_proceso,idMarca,desGrupo);
        
        }
        public int UltimoAnio_th_procesarAbc_cab() {

            clsTh_Procesoabc_CabLogic BL_TH_ProcesoAbcCab = new clsTh_Procesoabc_CabLogic();
            return BL_TH_ProcesoAbcCab.UltimoAnio_th_procesarAbc_cab();
        
        
        }
        public int UltimoMes_th_procesarAbc_cab(int anio)
        {

            clsTh_Procesoabc_CabLogic BL_TH_ProcesoAbcCab = new clsTh_Procesoabc_CabLogic();
            return BL_TH_ProcesoAbcCab.UltimoMes_th_procesarAbc_cab(anio);


        }
        public IEnumerable<Object> ListT_mae_proceso_abc_correo() {

            clsT_Mae_Proceso_Abc_CorreoLogic clt_mae_proceso_abc_correoLogic = new clsT_Mae_Proceso_Abc_CorreoLogic();
           return clt_mae_proceso_abc_correoLogic.ListT_mae_proceso_abc_correo();
        
        }

        public int? ValidaProcesoxmes(int anio, int mes) {
              clsTh_Procesoabc_CabLogic BL_TH_ProcesoAbcCab = new clsTh_Procesoabc_CabLogic();
              return BL_TH_ProcesoAbcCab.ValidaProcesoxmes(anio,mes);
        }

        public List<Globales.ListaProcesoABCEtiqueta> lista_etiquetas()
        {
            clsTh_Procesoabc_CabLogic BL_TH_ProcesoAbcCab = new clsTh_Procesoabc_CabLogic();

            return BL_TH_ProcesoAbcCab.lista_etiquetas();
        }

        public IEnumerable<Object> ListarArticulosEspecificos()
        {
            clsTd_Grupo_ArticuloLogic l = new clsTd_Grupo_ArticuloLogic();
            return l.ListarArticulosEspecificos();
        
        }

        public IEnumerable<object> listar_th_procesoabc_cab_detalle(int idCab)
        {
            clsTh_Procesoabc_CabLogic BL_TH_ProcesoAbcCab = new clsTh_Procesoabc_CabLogic();
            return BL_TH_ProcesoAbcCab.listar_th_procesoabc_cab_detalle(idCab);
        }

        public List<TD_CANTIDADES_ABC> TotalABCValorizado(int idCab, String idMarca, string desGrupo)
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet = new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.TotalABCValorizado(idCab,idMarca,desGrupo);
        }

        public List<TD_CANTIDADES_ABC> TotalABCCantidades(int idCab, String idMarca, string desGrupo)
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet = new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.TotalABCCantidades(idCab,idMarca,desGrupo);
        }

        public IEnumerable<Object> ListarTipo(int id_inventario_cab)
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet = new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.ListarTipo(id_inventario_cab);
        }



        public List<TD_GRUPO_ARTICULO_EN> listaGrupoArticulo(int id_cab, String Des_sup)
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet = new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.listaGrupoArticulo(id_cab,Des_sup);
        
        }


        public List<TD_MARCA_EN> listaMarcaPorIdGrupoArticulo(int id_cab, String id_grupo_Articulos)
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet = new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.listaMarcaPorIdGrupoArticulo(id_cab, id_grupo_Articulos);
        
        }

        public IEnumerable<Object> ListarMarca()
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet = new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.ListarMarca();
        }

        public bool AnularProcesoABC(int idCab)
        {
            clsTh_Procesoabc_DetLogic BL_TH_ProcesoAbcDet = new clsTh_Procesoabc_DetLogic();
            return BL_TH_ProcesoAbcDet.AnularProcesoABC(idCab);
        }

    }
}
